So we keep putting our trust in things that rust
And then we feel the pain of loss
(James, "Stripmining")
This is a special kind of messages which does not fit into the schema of all those messages described at another chapter. When processing it's input, hsc does not only check if the user made a mistake, but also the author of this tools. At several places of the source code, hsc tests for things that must not happen. Otherwise, hsc assumes it has completely fucked-up. In this case, it simple displays a message on the screen and aborts.
An example message could look like this:** internal error at "hugo.c" (123): sepp is not at home
These messages are not really meant to be interpreted by the user, but by the programmer. When hsc puts out an internal error message, you should contact the author and report this bug, including the complete text of the panic message. In such a case, you are not expected to create a sophisticated bug report, as such problems are hard to back-trace.
<BASE HREF="..">
, hsc is unable to
find out how the base is related to the destination directory
and will treat all local URIs like external ones. Therefor no
link validation will be performed. Project relative URIs
are not possible with a base-URI set, of course.
<LISTING>
and <XMP>
might not be
treated correctly, as the behavior of these two seems so be not
very strictly defined. You should avoid them anyway and use
<PRE>
or <$source>
instead.
<B>hello <!-- xy --></B>
''
is not converted to
``<B>hello<!-- xy --></B>
''. That means that
the blank after ``hello
'' will remain, but does not display a
message #79, as the <!..>
caused all white spaces preceding
it to be flushed. I already said it several times, and I say it again:
Do not use those bloody sgml-comments!
fopen()
of your compiler whether an error is reported
or the filename
is truncated. If you insist on filenames containing 46587643
characters, hsc can cope with it - but your OS probably won't.
malloc()
-function which just displays
an error message and quits using exit()
. As hsc
keeps track of all allocated resources, it will release everything
that could be fully initialised and made it into its supposed
resource list. For out-of-memories during partially initialising
complex structures, this fails and can cause memory-leaks
(normally approx. 100-500 bytes). Usually, these are handled by
your OS or, as for AmigaOS, by the malloc()
-function
of the run-time-library, so you shouldn't bother too much about
that. Blame K&R (or whoever perpetrated
malloc()
)for their brain-damaged memory management
concepts.
GetFileSize()
probably won't work correctly on
files greater than 2 GB. This usually caused by the limited abilities of
fseek()
and ftell()
.
Hsc is fully dynamic and it's input size, number of syntax-elements and etc. is only limited by memory and disk space. Only some less important status messages are created in classic, brain-dead zero-terminated C-character-arrays and are truncated if they become too long.
However, for projects much larger then 100 documents, scanning the project file on every run takes an awful lot of time; due the lack of any portable concept of keeping data resident after a program exits, there is no workaround for this (same problem like with hsc.prefs); you will have to get rid of the project-file and hscdepp for such projects.